package com.google.zxing.common; class GlobalHistogramBinarizer { void a() { int a;
a=0;// .class public final Lcom/google/zxing/common/GlobalHistogramBinarizer;
a=0;// .super Lcom/google/zxing/Binarizer;
a=0;// 
a=0;// 
a=0;// # static fields
a=0;// .field private static final LUMINANCE_BITS:I = 0x5
a=0;// 
a=0;// .field private static final LUMINANCE_BUCKETS:I = 0x20
a=0;// 
a=0;// .field private static final LUMINANCE_SHIFT:I = 0x3
a=0;// 
a=0;// 
a=0;// # instance fields
a=0;// .field private buckets:[I
a=0;// 
a=0;// .field private luminances:[B
a=0;// 
a=0;// 
a=0;// # direct methods
a=0;// .method public constructor <init>(Lcom/google/zxing/LuminanceSource;)V
a=0;//     .locals 1
a=0;// 
a=0;//     const/4 v0, 0x0
a=0;// 
a=0;//     #v0=(Null);
a=0;//     invoke-direct {p0, p1}, Lcom/google/zxing/Binarizer;-><init>(Lcom/google/zxing/LuminanceSource;)V
a=0;// 
a=0;//     #p0=(Reference,Lcom/google/zxing/common/GlobalHistogramBinarizer;);
a=0;//     iput-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->luminances:[B
a=0;// 
a=0;//     iput-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->buckets:[I
a=0;// 
a=0;//     return-void
a=0;// .end method
a=0;// 
a=0;// .method private static estimateBlackPoint([I)I
a=0;//     .locals 8
a=0;// 
a=0;//     const/4 v4, 0x0
a=0;// 
a=0;//     #v4=(Null);
a=0;//     array-length v7, p0
a=0;// 
a=0;//     #v7=(Integer);
a=0;//     move v2, v4
a=0;// 
a=0;//     #v2=(Null);
a=0;//     move v0, v4
a=0;// 
a=0;//     #v0=(Null);
a=0;//     move v1, v4
a=0;// 
a=0;//     #v1=(Null);
a=0;//     move v3, v4
a=0;// 
a=0;//     :goto_0
a=0;//     #v0=(Integer);v1=(Integer);v2=(Integer);v3=(Integer);v5=(Conflicted);
a=0;//     if-ge v2, v7, :cond_2
a=0;// 
a=0;//     aget v5, p0, v2
a=0;// 
a=0;//     #v5=(Integer);
a=0;//     if-le v5, v0, :cond_0
a=0;// 
a=0;//     aget v0, p0, v2
a=0;// 
a=0;//     move v1, v2
a=0;// 
a=0;//     :cond_0
a=0;//     aget v5, p0, v2
a=0;// 
a=0;//     if-le v5, v3, :cond_1
a=0;// 
a=0;//     aget v3, p0, v2
a=0;// 
a=0;//     :cond_1
a=0;//     add-int/lit8 v2, v2, 0x1
a=0;// 
a=0;//     goto :goto_0
a=0;// 
a=0;//     :cond_2
a=0;//     #v5=(Conflicted);
a=0;//     move v2, v4
a=0;// 
a=0;//     #v2=(Null);
a=0;//     move v0, v4
a=0;// 
a=0;//     #v0=(Null);
a=0;//     move v5, v4
a=0;// 
a=0;//     :goto_1
a=0;//     #v0=(Integer);v2=(Integer);v4=(Integer);v5=(Integer);v6=(Conflicted);
a=0;//     if-ge v2, v7, :cond_3
a=0;// 
a=0;//     sub-int v4, v2, v1
a=0;// 
a=0;//     aget v6, p0, v2
a=0;// 
a=0;//     #v6=(Integer);
a=0;//     mul-int/2addr v6, v4
a=0;// 
a=0;//     mul-int/2addr v4, v6
a=0;// 
a=0;//     if-le v4, v5, :cond_8
a=0;// 
a=0;//     move v0, v2
a=0;// 
a=0;//     :goto_2
a=0;//     add-int/lit8 v2, v2, 0x1
a=0;// 
a=0;//     move v5, v4
a=0;// 
a=0;//     goto :goto_1
a=0;// 
a=0;//     :cond_3
a=0;//     #v6=(Conflicted);
a=0;//     if-le v1, v0, :cond_7
a=0;// 
a=0;//     move v5, v1
a=0;// 
a=0;//     move v6, v0
a=0;// 
a=0;//     :goto_3
a=0;//     #v6=(Integer);
a=0;//     sub-int v0, v5, v6
a=0;// 
a=0;//     shr-int/lit8 v1, v7, 0x4
a=0;// 
a=0;//     if-gt v0, v1, :cond_4
a=0;// 
a=0;//     invoke-static {}, Lcom/google/zxing/ReaderException;->getInstance()Lcom/google/zxing/ReaderException;
a=0;// 
a=0;//     move-result-object v0
a=0;// 
a=0;//     #v0=(Reference,Lcom/google/zxing/ReaderException;);
a=0;//     throw v0
a=0;// 
a=0;//     :cond_4
a=0;//     #v0=(Integer);
a=0;//     add-int/lit8 v4, v5, -0x1
a=0;// 
a=0;//     const/4 v1, -0x1
a=0;// 
a=0;//     #v1=(Byte);
a=0;//     add-int/lit8 v2, v5, -0x1
a=0;// 
a=0;//     :goto_4
a=0;//     #v1=(Integer);
a=0;//     if-le v2, v6, :cond_5
a=0;// 
a=0;//     sub-int v0, v2, v6
a=0;// 
a=0;//     mul-int/2addr v0, v0
a=0;// 
a=0;//     sub-int v7, v5, v2
a=0;// 
a=0;//     mul-int/2addr v0, v7
a=0;// 
a=0;//     aget v7, p0, v2
a=0;// 
a=0;//     sub-int v7, v3, v7
a=0;// 
a=0;//     mul-int/2addr v0, v7
a=0;// 
a=0;//     if-le v0, v1, :cond_6
a=0;// 
a=0;//     move v1, v2
a=0;// 
a=0;//     :goto_5
a=0;//     add-int/lit8 v2, v2, -0x1
a=0;// 
a=0;//     move v4, v1
a=0;// 
a=0;//     move v1, v0
a=0;// 
a=0;//     goto :goto_4
a=0;// 
a=0;//     :cond_5
a=0;//     shl-int/lit8 v0, v4, 0x3
a=0;// 
a=0;//     return v0
a=0;// 
a=0;//     :cond_6
a=0;//     move v0, v1
a=0;// 
a=0;//     move v1, v4
a=0;// 
a=0;//     goto :goto_5
a=0;// 
a=0;//     :cond_7
a=0;//     #v6=(Conflicted);
a=0;//     move v5, v0
a=0;// 
a=0;//     move v6, v1
a=0;// 
a=0;//     #v6=(Integer);
a=0;//     goto :goto_3
a=0;// 
a=0;//     :cond_8
a=0;//     move v4, v5
a=0;// 
a=0;//     goto :goto_2
a=0;// .end method
a=0;// 
a=0;// .method private initArrays(I)V
a=0;//     .locals 4
a=0;// 
a=0;//     const/16 v3, 0x20
a=0;// 
a=0;//     #v3=(PosByte);
a=0;//     const/4 v1, 0x0
a=0;// 
a=0;//     #v1=(Null);
a=0;//     iget-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->luminances:[B
a=0;// 
a=0;//     #v0=(Reference,[B);
a=0;//     if-eqz v0, :cond_0
a=0;// 
a=0;//     iget-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->luminances:[B
a=0;// 
a=0;//     array-length v0, v0
a=0;// 
a=0;//     #v0=(Integer);
a=0;//     if-ge v0, p1, :cond_1
a=0;// 
a=0;//     :cond_0
a=0;//     #v0=(Conflicted);
a=0;//     new-array v0, p1, [B
a=0;// 
a=0;//     #v0=(Reference,[B);
a=0;//     iput-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->luminances:[B
a=0;// 
a=0;//     :cond_1
a=0;//     #v0=(Conflicted);
a=0;//     iget-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->buckets:[I
a=0;// 
a=0;//     #v0=(Reference,[I);
a=0;//     if-nez v0, :cond_3
a=0;// 
a=0;//     new-array v0, v3, [I
a=0;// 
a=0;//     iput-object v0, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->buckets:[I
a=0;// 
a=0;//     :cond_2
a=0;//     #v0=(Conflicted);v2=(Conflicted);
a=0;//     return-void
a=0;// 
a=0;//     :cond_3
a=0;//     #v0=(Reference,[I);v2=(Uninit);
a=0;//     move v0, v1
a=0;// 
a=0;//     :goto_0
a=0;//     #v0=(Integer);v2=(Conflicted);
a=0;//     if-ge v0, v3, :cond_2
a=0;// 
a=0;//     iget-object v2, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->buckets:[I
a=0;// 
a=0;//     #v2=(Reference,[I);
a=0;//     aput v1, v2, v0
a=0;// 
a=0;//     add-int/lit8 v0, v0, 0x1
a=0;// 
a=0;//     goto :goto_0
a=0;// .end method
a=0;// 
a=0;// 
a=0;// # virtual methods
a=0;// .method public final createBinarizer(Lcom/google/zxing/LuminanceSource;)Lcom/google/zxing/Binarizer;
a=0;//     .locals 1
a=0;// 
a=0;//     new-instance v0, Lcom/google/zxing/common/GlobalHistogramBinarizer;
a=0;// 
a=0;//     #v0=(UninitRef,Lcom/google/zxing/common/GlobalHistogramBinarizer;);
a=0;//     invoke-direct {v0, p1}, Lcom/google/zxing/common/GlobalHistogramBinarizer;-><init>(Lcom/google/zxing/LuminanceSource;)V
a=0;// 
a=0;//     #v0=(Reference,Lcom/google/zxing/common/GlobalHistogramBinarizer;);
a=0;//     return-object v0
a=0;// .end method
a=0;// 
a=0;// .method public final getBlackMatrix()Lcom/google/zxing/common/BitMatrix;
a=0;//     .locals 12
a=0;// 
a=0;//     const/4 v1, 0x0
a=0;// 
a=0;//     #v1=(Null);
a=0;//     invoke-virtual {p0}, Lcom/google/zxing/common/GlobalHistogramBinarizer;->getLuminanceSource()Lcom/google/zxing/LuminanceSource;
a=0;// 
a=0;//     move-result-object v3
a=0;// 
a=0;//     #v3=(Reference,Lcom/google/zxing/LuminanceSource;);
a=0;//     invoke-virtual {v3}, Lcom/google/zxing/LuminanceSource;->getWidth()I
a=0;// 
a=0;//     move-result v4
a=0;// 
a=0;//     #v4=(Integer);
a=0;//     invoke-virtual {v3}, Lcom/google/zxing/LuminanceSource;->getHeight()I
a=0;// 
a=0;//     move-result v5
a=0;// 
a=0;//     #v5=(Integer);
a=0;//     new-instance v6, Lcom/google/zxing/common/BitMatrix;
a=0;// 
a=0;//     #v6=(UninitRef,Lcom/google/zxing/common/BitMatrix;);
a=0;//     invoke-direct {v6, v4, v5}, Lcom/google/zxing/common/BitMatrix;-><init>(II)V
a=0;// 
a=0;//     #v6=(Reference,Lcom/google/zxing/common/BitMatrix;);
a=0;//     invoke-direct {p0, v4}, Lcom/google/zxing/common/GlobalHistogramBinarizer;->initArrays(I)V
a=0;// 
a=0;//     iget-object v7, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->buckets:[I
a=0;// 
a=0;//     #v7=(Reference,[I);
a=0;//     const/4 v0, 0x1
a=0;// 
a=0;//     #v0=(One);
a=0;//     move v2, v0
a=0;// 
a=0;//     :goto_0
a=0;//     #v0=(Integer);v2=(Integer);v8=(Conflicted);v9=(Conflicted);v10=(Conflicted);v11=(Conflicted);
a=0;//     const/4 v0, 0x5
a=0;// 
a=0;//     #v0=(PosByte);
a=0;//     if-ge v2, v0, :cond_1
a=0;// 
a=0;//     mul-int v0, v5, v2
a=0;// 
a=0;//     #v0=(Integer);
a=0;//     div-int/lit8 v0, v0, 0x5
a=0;// 
a=0;//     iget-object v8, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->luminances:[B
a=0;// 
a=0;//     #v8=(Reference,[B);
a=0;//     invoke-virtual {v3, v0, v8}, Lcom/google/zxing/LuminanceSource;->getRow(I[B)[B
a=0;// 
a=0;//     move-result-object v8
a=0;// 
a=0;//     shl-int/lit8 v0, v4, 0x2
a=0;// 
a=0;//     div-int/lit8 v9, v0, 0x5
a=0;// 
a=0;//     #v9=(Integer);
a=0;//     div-int/lit8 v0, v4, 0x5
a=0;// 
a=0;//     :goto_1
a=0;//     if-ge v0, v9, :cond_0
a=0;// 
a=0;//     aget-byte v10, v8, v0
a=0;// 
a=0;//     #v10=(Byte);
a=0;//     and-int/lit16 v10, v10, 0xff
a=0;// 
a=0;//     #v10=(Integer);
a=0;//     shr-int/lit8 v10, v10, 0x3
a=0;// 
a=0;//     aget v11, v7, v10
a=0;// 
a=0;//     #v11=(Integer);
a=0;//     add-int/lit8 v11, v11, 0x1
a=0;// 
a=0;//     aput v11, v7, v10
a=0;// 
a=0;//     add-int/lit8 v0, v0, 0x1
a=0;// 
a=0;//     goto :goto_1
a=0;// 
a=0;//     :cond_0
a=0;//     #v10=(Conflicted);v11=(Conflicted);
a=0;//     add-int/lit8 v0, v2, 0x1
a=0;// 
a=0;//     move v2, v0
a=0;// 
a=0;//     goto :goto_0
a=0;// 
a=0;//     :cond_1
a=0;//     #v0=(PosByte);v8=(Conflicted);v9=(Conflicted);
a=0;//     invoke-static {v7}, Lcom/google/zxing/common/GlobalHistogramBinarizer;->estimateBlackPoint([I)I
a=0;// 
a=0;//     move-result v7
a=0;// 
a=0;//     #v7=(Integer);
a=0;//     invoke-virtual {v3}, Lcom/google/zxing/LuminanceSource;->getMatrix()[B
a=0;// 
a=0;//     move-result-object v3
a=0;// 
a=0;//     move v2, v1
a=0;// 
a=0;//     :goto_2
a=0;//     #v0=(Integer);
a=0;//     if-ge v2, v5, :cond_4
a=0;// 
a=0;//     mul-int v8, v2, v4
a=0;// 
a=0;//     #v8=(Integer);
a=0;//     move v0, v1
a=0;// 
a=0;//     :goto_3
a=0;//     if-ge v0, v4, :cond_3
a=0;// 
a=0;//     add-int v9, v8, v0
a=0;// 
a=0;//     #v9=(Integer);
a=0;//     aget-byte v9, v3, v9
a=0;// 
a=0;//     #v9=(Byte);
a=0;//     and-int/lit16 v9, v9, 0xff
a=0;// 
a=0;//     #v9=(Integer);
a=0;//     if-ge v9, v7, :cond_2
a=0;// 
a=0;//     invoke-virtual {v6, v0, v2}, Lcom/google/zxing/common/BitMatrix;->set(II)V
a=0;// 
a=0;//     :cond_2
a=0;//     add-int/lit8 v0, v0, 0x1
a=0;// 
a=0;//     goto :goto_3
a=0;// 
a=0;//     :cond_3
a=0;//     #v9=(Conflicted);
a=0;//     add-int/lit8 v0, v2, 0x1
a=0;// 
a=0;//     move v2, v0
a=0;// 
a=0;//     goto :goto_2
a=0;// 
a=0;//     :cond_4
a=0;//     #v8=(Conflicted);
a=0;//     return-object v6
a=0;// .end method
a=0;// 
a=0;// .method public final getBlackRow(ILcom/google/zxing/common/BitArray;)Lcom/google/zxing/common/BitArray;
a=0;//     .locals 8
a=0;// 
a=0;//     const/4 v0, 0x1
a=0;// 
a=0;//     #v0=(One);
a=0;//     const/4 v2, 0x0
a=0;// 
a=0;//     #v2=(Null);
a=0;//     invoke-virtual {p0}, Lcom/google/zxing/common/GlobalHistogramBinarizer;->getLuminanceSource()Lcom/google/zxing/LuminanceSource;
a=0;// 
a=0;//     move-result-object v1
a=0;// 
a=0;//     #v1=(Reference,Lcom/google/zxing/LuminanceSource;);
a=0;//     invoke-virtual {v1}, Lcom/google/zxing/LuminanceSource;->getWidth()I
a=0;// 
a=0;//     move-result v4
a=0;// 
a=0;//     #v4=(Integer);
a=0;//     if-eqz p2, :cond_0
a=0;// 
a=0;//     invoke-virtual {p2}, Lcom/google/zxing/common/BitArray;->getSize()I
a=0;// 
a=0;//     move-result v3
a=0;// 
a=0;//     #v3=(Integer);
a=0;//     if-ge v3, v4, :cond_1
a=0;// 
a=0;//     :cond_0
a=0;//     #v3=(Conflicted);
a=0;//     new-instance p2, Lcom/google/zxing/common/BitArray;
a=0;// 
a=0;//     #p2=(UninitRef,Lcom/google/zxing/common/BitArray;);
a=0;//     invoke-direct {p2, v4}, Lcom/google/zxing/common/BitArray;-><init>(I)V
a=0;// 
a=0;//     :goto_0
a=0;//     #p2=(Reference,Lcom/google/zxing/common/BitArray;);
a=0;//     invoke-direct {p0, v4}, Lcom/google/zxing/common/GlobalHistogramBinarizer;->initArrays(I)V
a=0;// 
a=0;//     iget-object v3, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->luminances:[B
a=0;// 
a=0;//     #v3=(Reference,[B);
a=0;//     invoke-virtual {v1, p1, v3}, Lcom/google/zxing/LuminanceSource;->getRow(I[B)[B
a=0;// 
a=0;//     move-result-object v5
a=0;// 
a=0;//     #v5=(Reference,[B);
a=0;//     iget-object v3, p0, Lcom/google/zxing/common/GlobalHistogramBinarizer;->buckets:[I
a=0;// 
a=0;//     move v1, v2
a=0;// 
a=0;//     :goto_1
a=0;//     #v1=(Integer);v6=(Conflicted);v7=(Conflicted);
a=0;//     if-ge v1, v4, :cond_2
a=0;// 
a=0;//     aget-byte v6, v5, v1
a=0;// 
a=0;//     #v6=(Byte);
a=0;//     and-int/lit16 v6, v6, 0xff
a=0;// 
a=0;//     #v6=(Integer);
a=0;//     shr-int/lit8 v6, v6, 0x3
a=0;// 
a=0;//     aget v7, v3, v6
a=0;// 
a=0;//     #v7=(Integer);
a=0;//     add-int/lit8 v7, v7, 0x1
a=0;// 
a=0;//     aput v7, v3, v6
a=0;// 
a=0;//     add-int/lit8 v1, v1, 0x1
a=0;// 
a=0;//     goto :goto_1
a=0;// 
a=0;//     :cond_1
a=0;//     #v1=(Reference,Lcom/google/zxing/LuminanceSource;);v3=(Integer);v5=(Uninit);v6=(Uninit);v7=(Uninit);
a=0;//     invoke-virtual {p2}, Lcom/google/zxing/common/BitArray;->clear()V
a=0;// 
a=0;//     goto :goto_0
a=0;// 
a=0;//     :cond_2
a=0;//     #v1=(Integer);v3=(Reference,[I);v5=(Reference,[B);v6=(Conflicted);v7=(Conflicted);
a=0;//     invoke-static {v3}, Lcom/google/zxing/common/GlobalHistogramBinarizer;->estimateBlackPoint([I)I
a=0;// 
a=0;//     move-result v6
a=0;// 
a=0;//     #v6=(Integer);
a=0;//     aget-byte v1, v5, v2
a=0;// 
a=0;//     #v1=(Byte);
a=0;//     and-int/lit16 v1, v1, 0xff
a=0;// 
a=0;//     #v1=(Integer);
a=0;//     aget-byte v2, v5, v0
a=0;// 
a=0;//     #v2=(Byte);
a=0;//     and-int/lit16 v2, v2, 0xff
a=0;// 
a=0;//     :goto_2
a=0;//     #v0=(Integer);v2=(Integer);v3=(Conflicted);
a=0;//     add-int/lit8 v3, v4, -0x1
a=0;// 
a=0;//     #v3=(Integer);
a=0;//     if-ge v0, v3, :cond_4
a=0;// 
a=0;//     add-int/lit8 v3, v0, 0x1
a=0;// 
a=0;//     aget-byte v3, v5, v3
a=0;// 
a=0;//     #v3=(Byte);
a=0;//     and-int/lit16 v3, v3, 0xff
a=0;// 
a=0;//     #v3=(Integer);
a=0;//     shl-int/lit8 v7, v2, 0x2
a=0;// 
a=0;//     #v7=(Integer);
a=0;//     sub-int v1, v7, v1
a=0;// 
a=0;//     sub-int/2addr v1, v3
a=0;// 
a=0;//     shr-int/lit8 v1, v1, 0x1
a=0;// 
a=0;//     if-ge v1, v6, :cond_3
a=0;// 
a=0;//     invoke-virtual {p2, v0}, Lcom/google/zxing/common/BitArray;->set(I)V
a=0;// 
a=0;//     :cond_3
a=0;//     add-int/lit8 v0, v0, 0x1
a=0;// 
a=0;//     move v1, v2
a=0;// 
a=0;//     move v2, v3
a=0;// 
a=0;//     goto :goto_2
a=0;// 
a=0;//     :cond_4
a=0;//     #v7=(Conflicted);
a=0;//     return-object p2
a=0;// .end method
}}
